// import { Inject, Post, Get, Body, Query } from '@midwayjs/core';
// import { CoolController, BaseController } from '@cool-midway/core';
// import { AutomationDeviceStatusEntity } from '../../entity/device_status';
// import { AutomationDeviceStatusService } from '../../service/app/device_status';

// /**
//  * 管理端-设备状态监控
//  */
// @CoolController({
//   api: ['add', 'delete', 'update', 'info', 'list', 'page'],
//   entity: AutomationDeviceStatusEntity,
//   service: AutomationDeviceStatusService,
//   pageQueryOp: {
//     keyWordLikeFields: ['a.deviceId'],
//     fieldEq: ['a.status'],
//     where: async (ctx) => {
//       const { reportTime, status } = ctx.request.body;
//       const conditions = [];
//       if (reportTime && reportTime.length === 2) {
//         conditions.push([`a.reportTime BETWEEN '${reportTime[0]}' AND '${reportTime[1]}'`]);
//       }
//       if (status !== undefined && status !== null) {
//         conditions.push([`a.status = '${status}'`]);
//       }
//       return conditions;
//     },
//     select: ['a.*'],
//     join: [],
//   },
// })
// export class AdminAutomationDeviceStatusController extends BaseController {
//   @Inject()
//   automationDeviceStatusService: AutomationDeviceStatusService;

//   /**
//    * 获取设备状态历史
//    */
//   @Get('/history', { summary: '获取设备状态历史' })
//   async getDeviceHistory(@Query('deviceId') deviceId: string, @Query('limit') limit: number = 100) {
//     const history = await this.automationDeviceStatusService.getDeviceHistory(deviceId, limit);
//     return this.ok(history);
//   }

//   /**
//    * 获取设备最新状态
//    */
//   @Get('/latest', { summary: '获取设备最新状态' })
//   async getLatestStatus(@Query('deviceId') deviceId?: string) {
//     const latestStatus = await this.automationDeviceStatusService.getLatestStatus(deviceId);
//     return this.ok(latestStatus);
//   }

//   /**
//    * 获取在线设备列表
//    */
//   @Get('/online', { summary: '获取在线设备列表' })
//   async getOnlineDevices() {
//     const onlineDevices = await this.automationDeviceStatusService.getOnlineDevices();
//     return this.ok(onlineDevices);
//   }

//   /**
//    * 获取离线设备列表
//    */
//   @Get('/offline', { summary: '获取离线设备列表' })
//   async getOfflineDevices() {
//     const offlineDevices = await this.automationDeviceStatusService.getOfflineDevices();
//     return this.ok(offlineDevices);
//   }

//   /**
//    * 获取设备状态统计
//    */
//   @Get('/statistics', { summary: '获取设备状态统计' })
//   async getStatistics() {
//     const statistics = await this.automationDeviceStatusService.getStatistics();
//     return this.ok(statistics);
//   }

//   /**
//    * 批量更新设备状态
//    */
//   @Post('/batchUpdate', { summary: '批量更新设备状态' })
//   async batchUpdateStatus(@Body() params: { deviceStatuses: { deviceId: string; status: any }[] }) {
//     const { deviceStatuses } = params;
    
//     for (const deviceStatus of deviceStatuses) {
//       await this.automationDeviceStatusService.updateDeviceStatus(
//         deviceStatus.deviceId, 
//         deviceStatus.status
//       );
//     }
    
//     return this.ok('批量更新成功');
//   }

//   /**
//    * 清理历史数据
//    */
//   @Post('/cleanup', { summary: '清理历史数据' })
//   async cleanupHistory(@Body() params: { days: number }) {
//     const { days } = params;
//     const cutoffDate = new Date();
//     cutoffDate.setDate(cutoffDate.getDate() - days);
    
//     const result = await this.automationDeviceStatusService.cleanupHistory(cutoffDate);
//     return this.ok(`清理了 ${result.affected} 条历史记录`);
//   }

//   /**
//    * 设备状态变化趋势
//    */
//   @Get('/trend', { summary: '设备状态变化趋势' })
//   async getStatusTrend(@Query('deviceId') deviceId: string, @Query('hours') hours: number = 24) {
//     const trend = await this.automationDeviceStatusService.getStatusTrend(deviceId, hours);
//     return this.ok(trend);
//   }

//   /**
//    * 导出设备状态报告
//    */
//   @Post('/export', { summary: '导出设备状态报告' })
//   async exportReport(@Body() params: { deviceIds?: string[]; startTime?: string; endTime?: string }) {
//     const { deviceIds, startTime, endTime } = params;
    
//     // 这里可以实现导出逻辑，例如生成Excel或CSV文件
//     const reportData = await this.automationDeviceStatusService.getReportData(deviceIds, startTime, endTime);
    
//     return this.ok({
//       message: '报告生成成功',
//       data: reportData,
//       downloadUrl: '/api/automation/device-status/download-report' // 实际的下载链接
//     });
//   }

//   /**
//    * 设备状态告警配置
//    */
//   @Post('/alertConfig', { summary: '设备状态告警配置' })
//   async setAlertConfig(@Body() params: { 
//     deviceId: string; 
//     alertRules: { 
//       condition: string; 
//       threshold: any; 
//       alertType: string; 
//       enabled: boolean 
//     }[] 
//   }) {
//     const { deviceId, alertRules } = params;
    
//     // 这里可以实现告警配置逻辑
//     // 例如：保存到配置表，设置监控规则等
    
//     return this.ok('告警配置保存成功');
//   }
// }